\chapter{Use Cases and Activity Diagrams}

In order to generate the requirements and specifications for the planner, a
series of use cases will be created. The planner will require access from
student users, website administrators and the undergraduate chair--each
requiring different viewing permissions. The following sections discuss these
use cases.

\section{Use Cases}

Figures \ref{fig:use_cases_student} and \ref{fig:use_cases_other} shows the main use cases and actors identified for
CEAB++. The main actor is the student user that is maintaining a course schedule
and planner information. There is also an administrator that updates CEAB
information and scheduling data, and a course instructor that may wish to use
data from the CEAB++ to predict course load.

\begin{figure}[ht]
    \begin{center}
        \includegraphics[width=0.8\textwidth]{images/use_cases_student.png}
        % \psfig{figure=<+eps file+>}
    \end{center}
    \caption{Student Use Cases for CEAB++}
    \label{fig:use_cases_student}
\end{figure}

\begin{figure}[ht]
    \begin{center}
        \includegraphics[width=0.8\textwidth]{images/use_cases_other.png}
        % \psfig{figure=<+eps file+>}
    \end{center}
    \caption{Other Use Cases for CEAB++}
    \label{fig:use_cases_other}
\end{figure}

\section{Activity Diagrams}

There are many activities required by this software including:

\begin{itemize}
    \item Student adding a course to the planner
    \item Student checking for scheduling conflicts and options for courses
        added before scheduling data is available
    \item Student checking for compliance with the CEAB rules
    \item Student searching for courses to fulfil unmet CEAB requirements
    \item Student outputting compliant CEAB planner
    \item Administrator updating back end data
    \item Course instructor checking current enrolment forecast
\end{itemize}

Figure \ref{fig:add_course} shows the activity diagram for a student adding a
course to the planner, and the subsequent client/server interactions.

\begin{figure}[ht]
    \begin{center}
        %\psfig{figure=<+eps file+>}
        \includegraphics[width=0.8\textwidth]{images/add_course.png}
    \end{center}
    \caption{Activity Diagram for Adding a Course}
    \label{fig:add_course}
\end{figure}
